package com.springdoor.wx.utils.login;

import com.alibaba.fastjson2.JSONObject;
import com.springdoor.wx.config.WxConfig;
import com.springdoor.wx.utils.string.StringUtils;
import com.springdoor.wx.utils.http.HttpUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoginUtils {

    private static final Logger log = LoggerFactory.getLogger(LoginUtils.class);

    /**
     * 将小程序登录时获取的临时登录凭证（js_code）转换为会话密钥（session_key）、标识（openid）
     * @param jsCode
     * @return
     */
    public static String tranOpenid(String jsCode) {
        try {
            String urlTemplate = WxConfig.getUrlTemplate();
            log.info("login url: {}", urlTemplate);
            String rspStr = HttpUtils.sendGet(StringUtils.format(urlTemplate, jsCode));
            if (StringUtils.isEmpty(rspStr)) {
                log.info("{} 获取微信用户信息异常", jsCode);
                log.error("{} 获取微信用户信息异常", jsCode);
                return null;
            }
            JSONObject obj = JSONObject.parseObject(rspStr);
            String openid = (String) obj.get("openid");
    //        String sessionKey = (String) obj.get("session_key");
            return openid;
        } catch (Exception e) {
            log.error("获取微信用户信息异常: {}", e);
        }
        return null;
    }

}
